package alchemist.model;

import java.util.Set;

public class Combination
{
    private String        first;
    private String        second;
    private Set< String > result;

    public Combination()
    {
    }

    public Combination( String first, String second )
    {
        super();
        this.first = first;
        this.second = second;
    }

    public Combination( String first, String second, Set< String > result )
    {
        super();
        this.first = first;
        this.second = second;
        this.result = result;
    }

    public String getFirst()
    {
        return first;
    }

    public void setFirst( String first )
    {
        this.first = first;
    }

    public String getSecond()
    {
        return second;
    }

    public void setSecond( String second )
    {
        this.second = second;
    }

    public Set< String > getResult()
    {
        return result;
    }

    public void setResult( Set< String > result )
    {
        this.result = result;
    }

    @Override
    public int hashCode()
    {
        final int prime = 31;
        int result = 1;
        result = prime * result + ( ( first == null ) ? 0 : first.hashCode() );
        result = prime * result + ( ( second == null ) ? 0 : second.hashCode() );
        return result;
    }

    @Override
    public boolean equals( Object obj )
    {
        if ( this == obj )
            return true;
        if ( obj == null )
            return false;
        if ( getClass() != obj.getClass() )
            return false;
        Combination other = ( Combination ) obj;
        if ( first == null )
        {
            if ( other.first != null )
                return false;
        }
        else if ( !first.equals( other.first ) )
            return false;
        if ( second == null )
        {
            if ( other.second != null )
                return false;
        }
        else if ( !second.equals( other.second ) )
            return false;
        return true;
    }

}
